package com.southminority.ethnic.service.course;

import com.southminority.ethnic.pojo.Course;
import com.baomidou.mybatisplus.extension.service.IService;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.southminority.ethnic.controller.coures.vo.CourseDetailVo;

/**
* @author ASHTR
* @description 针对表【course(课程表)】的数据库操作Service
* @createDate 2025-01-20 10:00:00
*/
public interface CourseService extends IService<Course> {
    
    /**
     * 根据讲师ID查询课程列表
     * @param teacherId 讲师ID
     * @return 课程列表
     */
    // List<Course> getCoursesByTeacherId(Long teacherId);
    
    /**
     * 根据课程名称模糊查询
     * @param courseName 课程名称
     * @return 课程列表
     */
    // List<Course> getCoursesByName(String courseName);
    
    /**
     * 更新课程评分
     * @param courseId 课程ID
     * @return 是否更新成功
     */
    // Boolean updateCourseStar(Long courseId);
    
    /**
     * 根据课程类型查询课程列表
     * @param courseType 课程类型
     * @return 课程列表
     */
    // List<Course> getCoursesByType(Integer courseType);
    
    /**
     * 分页查询课程列表（包含教师信息）
     * @param pageNum 页码
     * @param pageSize 每页大小
     * @param courseType 课程类型（可选）
     * @return 分页结果
     */
    Page<CourseDetailVo> getCoursePageWithTeacher(Integer pageNum, Integer pageSize, Integer courseType);
    
    /**
     * 分页查询课程列表（带关键词搜索）
     * @param page 分页对象
     * @param keyword 搜索关键词
     * @return 分页结果
     */
    Page<Course> getCoursePageWithKeyword(Page<Course> page, String keyword);
} 